<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head>
<title></title>
<style type="text/css">
    <!--code { font-family: Courier New, Courier; font-size: 10pt; margin: 0px; }-->
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head><body>
<div align="left" class="java">
    <table border="0" cellpadding="3" cellspacing="0" bgcolor="#ffffff">
        <tr>
            <td nowrap="nowrap" valign="top" align="left">
                <code>
                    <font color="#3f7f5f">/*</font><br />
                    <font color="#ffffff">&nbsp;</font><font color="#3f7f5f">*&nbsp;Main.fx</font><br />
                    <font color="#ffffff">&nbsp;</font><font color="#3f7f5f">*</font><br />
                    <font color="#ffffff">&nbsp;</font><font color="#3f7f5f">*&nbsp;Created&nbsp;on&nbsp;8&nbsp;Jul,&nbsp;2009,&nbsp;6:14:16&nbsp;PM</font><br />
                    <font color="#ffffff">&nbsp;</font><font color="#3f7f5f">*/</font><br />
                    <font color="#ffffff"></font><br />
                    <font color="#7f0055"><b>package&nbsp;</b></font><font color="#000000">draw;</font><br />
                    <font color="#ffffff"></font><br />
                    <font color="#7f0055"><b>import&nbsp;</b></font><font color="#000000">javafx.scene.Scene;</font><br />
                    <font color="#7f0055"><b>import&nbsp;</b></font><font color="#000000">javafx.scene.shape.Rectangle;</font><br />
                    <font color="#7f0055"><b>import&nbsp;</b></font><font color="#000000">javafx.scene.shape.Path;</font><br />
                    <font color="#7f0055"><b>import&nbsp;</b></font><font color="#000000">javafx.scene.shape.MoveTo;</font><br />
                    <font color="#7f0055"><b>import&nbsp;</b></font><font color="#000000">javafx.scene.shape.LineTo;</font><br />
                    <font color="#7f0055"><b>import&nbsp;</b></font><font color="#000000">javafx.scene.paint.Color;</font><br />
                    <font color="#7f0055"><b>import&nbsp;</b></font><font color="#000000">javafx.scene.shape.StrokeLineCap;</font><br />
                    <font color="#7f0055"><b>import&nbsp;</b></font><font color="#000000">javafx.animation.transition.AnimationPath;</font><br />
                    <font color="#7f0055"><b>import&nbsp;</b></font><font color="#000000">javafx.animation.transition.OrientationType;</font><br />
                    <font color="#7f0055"><b>import&nbsp;</b></font><font color="#000000">javafx.animation.transition.PathTransition;</font><br />
                    <font color="#7f0055"><b>import&nbsp;</b></font><font color="#000000">javafx.scene.image.Image;</font><br />
                    <font color="#7f0055"><b>import&nbsp;</b></font><font color="#000000">javafx.scene.image.ImageView;</font><br />
                    <font color="#7f0055"><b>import&nbsp;</b></font><font color="#000000">javafx.stage.Stage;</font><br />
                    <font color="#7f0055"><b>import&nbsp;</b></font><font color="#000000">javafx.scene.shape.ClosePath;</font><br />
                    <font color="#ffffff"></font><br />
                    <font color="#ffffff"></font><br />
                    <font color="#3f5fbf">/**</font><br />
                    <font color="#ffffff">&nbsp;</font><font color="#3f5fbf">*&nbsp;</font><font color="#7f9fbf">@author&nbsp;</font><font color="#3f5fbf">Rakesh&nbsp;Menon</font><br />
                    <font color="#ffffff">&nbsp;</font><font color="#3f5fbf">*/</font><br />
                    <font color="#ffffff"></font><br />
                    <font color="#000000">var&nbsp;car&nbsp;:&nbsp;ImageView&nbsp;=&nbsp;ImageView&nbsp;</font><font color="#000000">{</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">image:&nbsp;Image&nbsp;</font><font color="#000000">{</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">url:&nbsp;</font><font color="#2a00ff">&#34;{__DIR__}car.png&#34;</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">}</font><br />
                    <font color="#000000">}</font><br />
                    <font color="#000000">var&nbsp;terrain&nbsp;:&nbsp;ImageView&nbsp;=&nbsp;ImageView&nbsp;</font><font color="#000000">{</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">image:&nbsp;Image&nbsp;</font><font color="#000000">{</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">url:&nbsp;</font><font color="#2a00ff">&#34;{__DIR__}terrain.jpg&#34;</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">}</font><br />
                    <font color="#000000">}</font><br />
                    <font color="#ffffff"></font><br />
                    <font color="#000000">var&nbsp;path&nbsp;=&nbsp;Path&nbsp;</font><font color="#000000">{</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">elements:&nbsp;bind&nbsp;pathUtil.elements</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">stroke:&nbsp;Color.BLACK</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">strokeWidth:&nbsp;</font><font color="#990000">20</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">strokeLineCap:&nbsp;StrokeLineCap.ROUND</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">opacity:&nbsp;</font><font color="#990000">0.5</font><br />
                    <font color="#000000">}</font><br />
                    <font color="#000000">var&nbsp;stripe&nbsp;=&nbsp;Path&nbsp;</font><font color="#000000">{</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">elements:&nbsp;bind&nbsp;path.elements</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">stroke:&nbsp;Color.WHITE</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">strokeWidth:&nbsp;</font><font color="#990000">2</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">strokeDashArray:&nbsp;</font><font color="#000000">[&nbsp;</font><font color="#990000">10</font><font color="#000000">,&nbsp;</font><font color="#990000">20&nbsp;</font><font color="#000000">]</font><br />
                    <font color="#000000">}</font><br />
                    <font color="#ffffff"></font><br />
                    <font color="#000000">var&nbsp;pathUtil&nbsp;=&nbsp;PathUtil&nbsp;</font><font color="#000000">{</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><br />
                    <font color="#000000">}</font><font color="#000000">;</font><br />
                    <font color="#ffffff"></font><br />
                    <font color="#000000">var&nbsp;pathTransition&nbsp;=&nbsp;PathTransition&nbsp;</font><font color="#000000">{</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">duration:&nbsp;</font><font color="#990000">10</font><font color="#000000">s</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">node:&nbsp;car</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">orientation:&nbsp;OrientationType.ORTHOGONAL_TO_TANGENT</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">repeatCount:&nbsp;</font><font color="#990000">1</font><br />
                    <font color="#000000">}</font><font color="#000000">;</font><br />
                    <font color="#ffffff"></font><br />
                    <font color="#000000">var&nbsp;bgRect&nbsp;:&nbsp;Rectangle&nbsp;=&nbsp;Rectangle&nbsp;</font><font color="#000000">{</font><br />
                    <font color="#ffffff"></font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">width:&nbsp;bind&nbsp;bgRect.scene.width</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">height:&nbsp;bind&nbsp;bgRect.scene.height</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">fill:&nbsp;Color.TRANSPARENT</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">onMousePressed:&nbsp;function</font><font color="#000000">(</font><font color="#000000">e</font><font color="#000000">)&nbsp;{</font><br />
                    <font color="#ffffff"></font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#3f7f5f">//&nbsp;Reset</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">delete&nbsp;pathUtil.elements;</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">pathTransition.stop</font><font color="#000000">()</font><font color="#000000">;</font><br />
                    <font color="#ffffff"></font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">insert&nbsp;MoveTo&nbsp;</font><font color="#000000">{&nbsp;</font><font color="#000000">x:&nbsp;e.x&nbsp;&nbsp;y:&nbsp;e.y&nbsp;</font><font color="#000000">}&nbsp;</font><font color="#000000">into&nbsp;pathUtil.elements;</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">}</font><br />
                    <font color="#ffffff"></font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">onMouseDragged:&nbsp;function</font><font color="#000000">(</font><font color="#000000">e</font><font color="#000000">)&nbsp;{</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">insert&nbsp;LineTo&nbsp;</font><font color="#000000">{&nbsp;</font><font color="#000000">x:&nbsp;e.x&nbsp;&nbsp;y:&nbsp;e.y&nbsp;</font><font color="#000000">}&nbsp;</font><font color="#000000">into&nbsp;pathUtil.elements;</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">}</font><br />
                    <font color="#ffffff"></font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">onMouseReleased:&nbsp;function</font><font color="#000000">(</font><font color="#000000">e</font><font color="#000000">)&nbsp;{</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">insert&nbsp;ClosePath&nbsp;</font><font color="#000000">{&nbsp;}&nbsp;</font><font color="#000000">into&nbsp;pathUtil.elements;</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">pathUtil.save</font><font color="#000000">()</font><font color="#000000">;</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">doAnimation</font><font color="#000000">()</font><font color="#000000">;</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">}</font><br />
                    <font color="#000000">}</font><br />
                    <font color="#ffffff"></font><br />
                    <font color="#000000">function&nbsp;doAnimation</font><font color="#000000">()&nbsp;{</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#7f0055"><b>if</b></font><font color="#000000">(</font><font color="#000000">sizeof&nbsp;path.elements&nbsp;&lt;=&nbsp;</font><font color="#990000">0</font><font color="#000000">)&nbsp;{&nbsp;</font><font color="#7f0055"><b>return</b></font><font color="#000000">;&nbsp;</font><font color="#000000">}</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">pathTransition.path&nbsp;=&nbsp;AnimationPath.createFromPath</font><font color="#000000">(</font><font color="#000000">path</font><font color="#000000">)</font><font color="#000000">;</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">pathTransition.playFromStart</font><font color="#000000">()</font><font color="#000000">;</font><br />
                    <font color="#000000">}</font><br />
                    <font color="#ffffff"></font><br />
                    <font color="#000000">var&nbsp;stage&nbsp;=&nbsp;Stage&nbsp;</font><font color="#000000">{</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">title:&nbsp;</font><font color="#2a00ff">&#34;Terrain&nbsp;Race!&#34;</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">scene:&nbsp;Scene&nbsp;</font><font color="#000000">{</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">content:&nbsp;</font><font color="#000000">[&nbsp;</font><font color="#000000">terrain,&nbsp;bgRect,&nbsp;path,&nbsp;stripe,&nbsp;car&nbsp;</font><font color="#000000">]</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">width:&nbsp;</font><font color="#990000">450</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">height:&nbsp;</font><font color="#990000">300</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">}</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">resizable:&nbsp;</font><font color="#7f0055"><b>false</b></font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">visible:&nbsp;</font><font color="#7f0055"><b>false</b></font><br />
                    <font color="#000000">}</font><br />
                    <font color="#ffffff"></font><br />
                    <font color="#000000">function&nbsp;run</font><font color="#000000">()&nbsp;{</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">stage.visible&nbsp;=&nbsp;</font><font color="#7f0055"><b>true</b></font><font color="#000000">;</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">pathUtil.load</font><font color="#000000">()</font><font color="#000000">;</font><br />
                    <font color="#ffffff">&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#000000">doAnimation</font><font color="#000000">()</font><font color="#000000">;</font><br />
                    <font color="#000000">}</font><br />
                    <font color="#ffffff"></font><font color="#ffffff">
                    </font></code>    
            </td>
        </tr>
    </table>
</div>
</body>
</html>